home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: MegaDisc
/
MegaDisc 27 (1992-03)(MegaDisc Digital Publishing)(AU)(Disk 2 of 2).zip
/
MegaDisc 27 (1992-03)(MegaDisc Digital Publishing)(AU)(Disk 2 of 2).adf
/
Programming
/
Basic_Routines
/
BasicSubs
/
demos
/
Ltd_Input.demo
< prev
next >
Wrap
Text File
|
1992-03-30
|
4KB
|
160 lines
SCREEN 1,640,250,4,2
WINDOW 2," LIMITED INPUT DEMO",,0,1
GOSUB LOADCOLOURS
GOSUB SCREENSETUP
COLOR 0,12
RESPONSELOOP:
GOSUB GETRESPONSE
IF response=4 THEN SYSTEM
ON response GOSUB NUMERIC,CAPITALS,ANYTHING:GOTO RESPONSELOOP
NUMERIC:
maxlen=8:xinp=15:yinp=7:GOSUB GETNUMBER
GOSUB PRINTRESPONSE
RETURN
CAPITALS:
maxlen=8:xinp=57:yinp=7:GOSUB GETINPUT
GOSUB PRINTRESPONSE
RETURN
ANYTHING:
maxlen=8:xinp=36:yinp=15:GOSUB GETANYTHING
GOSUB PRINTRESPONSE
RETURN
PRINTRESPONSE:
deft=8-LEN(default$):default$=default$+LEFT$(" ",deft)
LOCATE yinp,xinp:PRINT default$
RETURN
LOADCOLOURS:
OPEN "BasicUtils&Subs:SetupFiles/Colours" FOR INPUT AS #1
FOR i = 0 TO 15
INPUT #1,a,b,C,C$
PALETTE i,a,b,C
NEXT i
CLOSE
RETURN
SCREENSETUP:
xs=59:ys=19:xe=235:ye=59:fillcol=12:olcol=2:GOSUB RAISED
xs=397:xe=573:GOSUB RAISED
xs=227:ys=83:xe=397:ye=123:GOSUB RAISED
COLOR 0,12
LOCATE 4,10:PRINT "Press This Box For":LOCATE 5,10:PRINT "Numeric Input Only"
LOCATE 7,15:PRINT "________"
LOCATE 4,52:PRINT "Press This Box For":LOCATE 5,52:PRINT "Capital Letter Only"
LOCATE 7,57:PRINT "________"
LOCATE 12,31:PRINT "Press This Box For":LOCATE 13,31:PRINT "Any Limited Input"
LOCATE 15,36:PRINT "________"
xs=267:xe=357:ys=163:ye=179:fillcol=6:GOSUB RAISED
COLOR 0,6:LOCATE 22,38:PRINT "QUIT"
RETURN
RAISED:
COLOR olcol
LINE (xs,ys)-(xe,ye),,b
LINE (xs-4,ys-2)-(xe+4,ye+2),,b
LINE (xs-2,ys-1)-(xe+2,ye+1),,b
GOSUB FILLBOX
RETURN
FILLBOX:
COLOR fillcol
LINE (xs+1,ys+1)-(xe-1,ye-1),,b
PAINT ((xs+xe)/2,(ys+ye)/2)
RETURN
GETINPUT:
a$="":b$="":inplen=0
LOCATE yinp,xinp:PRINT "|";:FOR i = 2 TO maxlen:PRINT "_";:NEXT i
LOCATE yinp,xinp
a$=INKEY$
IF a$=CHR$(27) THEN default$=a$:RETURN
IF a$>"`" AND a$<"{" THEN a$=CHR$(ASC(a$)-32)
IF a$ = CHR$(13) THEN RETURN
IF a$<"A" OR a$>"Z" THEN GOTO GETINPUT
GETLINE:
b$ = b$+a$:inplen=inplen+1:PRINT a$;
IF inplen = maxlen THEN default$=b$:RETURN
PRINT "|";:LOCATE yinp,xinp+inplen
GETKEY:
a$=INKEY$
IF a$=CHR$(27) THEN default$=a$:RETURN
IF a$>"`" AND a$<"{"THEN a$=CHR$(ASC(a$)-32)
IF a$ >"@" AND a$<"[" OR a$=" " THEN GOTO GETLINE
IF a$=CHR$(13) THEN default$=b$:RETURN
IF a$=CHR$(8) THEN
inplen=inplen-1:IF inplen=0 THEN GETINPUT
b$=LEFT$(b$,inplen)
LOCATE yinp,xinp:PRINT b$;"|_":LOCATE yinp,xinp+inplen
END IF
GOTO GETKEY
GETNUMBER:
a$="":b$="":inplen=0
LOCATE yinp,xinp:PRINT "|";:FOR i=2 TO maxlen:PRINT "_";:NEXT i
LOCATE yinp,xinp
a$=INKEY$
IF a$=CHR$(27) THEN default$=a$:RETURN
IF a$ = CHR$(13) THEN RETURN
IF (a$<"0" OR a$>"9") AND a$<> "." THEN GOTO GETNUMBER
GETNUM:
b$=b$+a$:inplen=inplen+1:PRINT a$;
IF inplen = maxlen THEN default$=b$:RETURN
PRINT "|";:LOCATE yinp,xinp+inplen
GETKEYNUM:
a$=INKEY$
IF a$=CHR$(27) THEN default$=a$:RETURN
IF (a$>"/" AND a$<":") OR a$="." THEN GOTO GETNUM
IF a$= CHR$(13) THEN default$=b$:RETURN
IF a$= CHR$(8) THEN
inplen=inplen-1: IF inplen =0 THEN GETNUMBER
b$ = LEFT$(b$,inplen)
LOCATE yinp,xinp:PRINT b$;"|_":LOCATE yinp,xinp+inplen
END IF
GOTO GETKEYNUM
GETANYTHING:
a$="":b$="":inplen=0
LOCATE yinp,xinp:PRINT "|";:FOR i = 2 TO maxlen:PRINT "_";:NEXT i
LOCATE yinp,xinp
a$=INKEY$
IF a$=CHR$(27) THEN default$=a$:RETURN
IF a$ = CHR$(13) THEN RETURN
IF a$<" " OR a$>"~" THEN GOTO GETANYTHING
GETANYLINE:
b$ = b$+a$:inplen=inplen+1:PRINT a$;
IF inplen = maxlen THEN default$=b$:RETURN
PRINT "|";:LOCATE yinp,xinp+inplen
GETANYKEY:
a$=INKEY$
IF a$=CHR$(27) THEN default$=a$:RETURN
IF a$ > CHR$(31) AND a$< CHR$(127) THEN GOTO GETANYLINE
IF a$=CHR$(13) THEN default$=b$:RETURN
IF a$=CHR$(8) THEN
inplen=inplen-1:IF inplen=0 THEN GETANYTHING
b$=LEFT$(b$,inplen)
LOCATE yinp,xinp:PRINT b$;"|_":LOCATE yinp,xinp+inplen
END IF
GOTO GETANYKEY
GETRESPONSE:
response=0
ON MOUSE GOSUB LEFTMOUSE
MOUSE ON
NORESPONSE:
IF response = 0 THEN NORESPONSE
RETURN
LEFTMOUSE:
IF MOUSE(0)=0 THEN RETURN
x=MOUSE(3):Y=MOUSE(4)
IF (x>59 AND x<235 AND Y>19 AND Y<59) THEN response = 1:RETURN
IF (x>397 AND x<573 AND Y>19 AND Y<59) THEN response = 2:RETURN
IF (x>227 AND x<397 AND Y>83 AND Y<123) THEN response = 3:RETURN
IF (x>267 AND x<357 AND Y>163 AND Y<179) THEN response = 4:RETURN
RETURN